home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / cli / okami15.lzh / OKAMI15 / DOC / MSH.DOC < prev    next >
Text File  |  1992-09-20  |  11KB  |  307 lines

  1.  
  2.                         Okami Shell Version 1.5 
  3.  
  4.  
  5.                            Okami Microshell 
  6.  
  7.  
  8.                               Version 1.7 
  9.  
  10.  
  11.  
  12.  
  13.                  von Wolfram Rösler ... Public Domain 
  14.  
  15. Zum  Lieferumfang der Okami-Shell gehört eine Mini-Shell,  deren Aufgabe
  16. es  ist,  die Hauptshell aufzurufen.  Die Notwendigkeit dazu ergibt sich
  17. aus dem folgenden Dilemma: 
  18.  
  19.         Damit  von  der Shell aus GEM-Programme gestartet werden können,
  20.         muß die Shell vom Desktop aus als PRG gestartet werden. 
  21.  
  22.         Die  Shell  lädt  die  Datei  profile  nur  dann,   wenn ihr als
  23.         Parameter  ein Minuszeichen übergeben wird (Login-Shell,  wie in
  24.         Unix). 
  25.  
  26.         Beim Aufruf vom Desktop als PRG ist die Eingabe eines Parameters
  27.         nicht vorgesehen 
  28.  
  29.         Also kann man keine Login-Shell aufrufen,  von der der Start von
  30.         GEM-Programmen möglich ist. 
  31.  
  32. Zu diesem Zweck gibt es die Microshell, die, wenn sie als PRG aufgerufen
  33. wird  und  dann  ihrerseits  die  Okami-Shell  aufruft,  den  Start  von
  34. GEM-Programmen ermöglicht. 
  35.  
  36. Die  Microshell  erfüllt allerdings nicht nur diesen Zweck,  sondern sie
  37. ist  ein  Werkzeug  zur  Kontrolldatei-gesteuerten  Ausführung  mehrerer
  38. Programme mit jeweiligen Parametern.  Dazu wird eine Datei angelegt,  in
  39. der  die  Namen  der  aufzurufenden  Programme  und  die zu übergebenden
  40. Parameter angeführt sind.  Das macht die Microshell tatsächlich zu einer
  41. kleineren Version einer Shell,  die zwar nicht interaktiv arbeitet, aber
  42. trotzdem in der Lage ist, z.B. einen Compiler oder Linker aufzurufen und
  43. das Ergebnis anschließend zu starten. 
  44. Die  Microshell  ist  also  ein vollwertiger Batch-Prozessor,  der seine
  45. eigenen  Shellscripts hat und für die vielfältigsten Aufgaben eingesetzt
  46. werden  kann  (natürlich  auch  vollkommen unabhängig von dem restlichen
  47. Okami-System). 
  48.  
  49. Die Batch-  oder Kontrolldateien, die von der Microshell benutzt werden,
  50. werden als MSH-Scripts bezeichnet. 
  51.  
  52.  
  53. Die  Microshell  befindet  sich in der Datei msh.prg.  Der Quellcode der
  54. Microshell gehört zum Lieferumfang und befindet sich in der Datei msh.c.
  55.  
  56.  
  57.  
  58. AUFRUF DER MICROSHELL
  59.  
  60. Nach  dem Start der Microshell als MSH.PRG wird als MSH-Script die Datei
  61. msh.inf im aktuellen Directoy benutzt. 
  62. Wenn  die Microshell als MSH.TTP oder von der Okami-Shell aus aufgerufen
  63. wird,  ist die Eingabe einer Kommandozeile möglich, die folgender Syntax
  64. folgt: 
  65.  
  66.                    { Dateiname } [-c { Kommandos }] 
  67.  
  68. Die angegebenen Dateien werden als MSH-Scripts ausgeführt.  Wenn nach -c
  69. Kommandos  angegeben sind,  werden diese direkt ausgeführt.  Dies können
  70. die Namen von zu startenden Programmen,  aber auch interne Kommandos der
  71. Microshell sein. 
  72. ACHTUNG:   Jeder  Parameter stellt dabei ein vollständiges Kommando dar.
  73. Bei dem Aufruf 
  74.  
  75.                            msh -c echo hallo 
  76.  
  77. werden zwei Kommandos,  nämlich "echo"  und "hallo",  übergeben.  Um das
  78. Kommando "echo hallo" ausführen zu lassen, muß der Aufruf so aussehen: 
  79.  
  80.                           msh -c "echo hallo" 
  81.  
  82.  
  83.  
  84. KOMMANDOS
  85.  
  86. Die einzelnen Zeilen eines Scripts haben folgende Bedeutung: 
  87.  
  88. 1)  Führende und endende Whitespace-Zeichen (Leerzeichen, Tabs, Newlines
  89. etc.) werden ignoriert. 
  90. 2)   Leerzeilen und Zeilen,  die mit einem '#'  (Doppelkreuz)  beginnen,
  91. gelten als Kommentarzeilen. 
  92. 3)   Alle  Zeilen,   die keine Kommentarzeilen sind,  können als letztes
  93. Zeichen  einen  Backslash  (\)  erhalten,  dann wird die darauf folgende
  94. Zeile an diese Zeile angehängt. 
  95. 4)  Wenn  eine  Zeile  nur  aus  einem  Pluszeichen  besteht,  wird  der
  96. Kommentarmodus  eingeschaltet.   Im Kommentarmodus wird der Name und die
  97. Parameter  jedes  aufgerufenen Programmes auf dem Bildschirm ausgegeben.
  98. (Gilt  nicht  für interne Kommandos.)  Nach dem Start der Microshell ist
  99. der Kommentarmodus eingeschaltet. 
  100. 5)   Wenn  eine Zeile nur aus einem Minuszeichen besteht,  wird der Kom-
  101. mentarmodus abgeschaltet. 
  102. 6) Allen anderen Zeilen werden in der Form 
  103.  
  104.                           Kommando Parameter 
  105.  
  106. interpretiert.   Das Kommando ist dabei entweder der Name eines internen
  107. Kommandos oder der Dateiname eines auszuführenden Programms. 
  108.  
  109. Folgende interne Kommandos sind vorhanden: 
  110.  
  111.  
  112. cd
  113.  
  114.         ändert  das  aktuelle Directory.  `Parameter'  darf ein Laufwerk
  115.         enthalten, z.B. "cd c:bin". 
  116.  
  117.  
  118. exit
  119.  
  120.         das augenblickliche MSH-Script wird beendet. 
  121.  
  122.  
  123. echo
  124.  
  125.         gibt den String `Parameter'  auf dem Bildschirm aus.  Der String
  126.         darf Steuersequenzen enthalten, siehe unten. 
  127.  
  128.  
  129. incl
  130.  
  131.         führt  die  als Parameter angegebene Datei als MSH-  Script aus.
  132.         Die  maximale  Schachtelungstiefe  von  incl-anweisungen ist nur
  133.         durch   den   verfügbaren   Speicher   und   die   Maximalanzahl
  134.         gleichzeitig offener Dateien begrenzt. 
  135.  
  136.  
  137. ver
  138.  
  139.         gibt    die    Versionsnummer    der    Microshell    und    den
  140.         Kompilierungszeitpunkt aus. 
  141.  
  142.  
  143. exec
  144.  
  145.         startet ein Programm anstelle des msh-Prozesses. Siehe unten. 
  146.  
  147.  
  148. wait
  149.  
  150.         wartet auf Tastendruck oder Datum/Uhrzeit. Siehe unten. 
  151.  
  152.  
  153. Bei  allen  anderen  Kommandos  wird  die  als Kommando angegebene Datei
  154. ausgeführt,  wobei der als Parameter angegebene String als Kommandozeile
  155. übergeben wird. 
  156. Es empfiehlt sich, den vollen Dateinamen anzugeben (was aber nicht immer
  157. unbedingt notwendig ist.) 
  158.  
  159.  
  160. STEUERSEQUENZEN DES ECHO-KOMMANDOS
  161.  
  162.  
  163.         \n     Newline
  164.         \t     Tabulator
  165.         \b     Backspace
  166.         \\    Backslash
  167.         \^     Zirkumflex
  168.         \c     (am Stringende) verhindert Zeilenvorschub
  169.         ^x      erzeugt das Zeichen mit Ascii-Code x-'A'+1. Hierbei ist
  170.                 x ein beliebiges Zeichen.
  171. Beispiele: 
  172.         echo Das ist eine Zeile \n und das ist die nächste.
  173.         echo Das ist eine Zeile \c
  174.         echo und das ist dieselbe.
  175.         echo Der folgende Text: ^[p ist invers durch eine \c
  176.         echo VT52-Steuersequenz. ^[q
  177.         echo Man kann Backslashes: \\ und Zirkumflexe: \^ ausgeben.
  178.         echo Ebenso kann man klingeln: ^G
  179.  
  180.  
  181.  
  182. DAS EXEC-KOMMANDO
  183.  
  184. Das interne Kommando exec wird folgendermaßen aufgerufen: 
  185.  
  186.                        exec Programm {Parameter} 
  187.  
  188. Das  angegebene  Programm wird mit den angegebenen Parametern gestartet,
  189. anschließend  wird  die  Microshell beendet.  Wenn MiNT installiert ist,
  190. wird  das  Programm  anstelle  des  msh-Prozesses  gestartet  (d.h.  der
  191. msh-Prozeß  wird von dem Programm überlagert),  so daß die msh,  während
  192. das Programm läuft, keinen Speicherplatz belegt. 
  193. Das   bedeutet,    daß  alles,   was  in  einem  msh-Script  nach  einem
  194. exec-Kommando steht, nicht mehr beachtet werden kann. 
  195.  
  196.  
  197. DAS WAIT-KOMMANDO
  198.  
  199. Das interne Kommando wait kann auf zwei Arten aufgerufen werden. 
  200.  
  201.                                wait key 
  202.  
  203. In dieser Form wartet msh auf einen Tastendruck.  Bei Druck auf ESC wird
  204. das   aktuelle   Script  beendet,   bei  jeder  anderen  Taste  wird  es
  205. fortgesetzt. 
  206.  
  207.                       wait ttmmjj HHMMSS [Text ] 
  208.  
  209. In  dieser  Form  wartet  msh  bis zu einem angegeben Datum und Uhrzeit.
  210. Wenn anstelle von ttmmjj ein Stern (*)  steht, wartet msh nur bis zu der
  211. angegebenen  Uhrzeit.  Wenn  der  Protokollmodus  aktiv  ist,  gibt  msh
  212. folgende Zeile aus: 
  213.  
  214.                 Waiting for Text... press ESC to abort 
  215.  
  216. Als  Text  steht  hier  der entsprechende Parameter von wait.  Wenn kein
  217. Text angegeben ist, entfällt die Ausgabe von "for Text". 
  218. Achtung:   ttmmjj  und  HHMMSS  müssen  immer in dieser Form geschrieben
  219. werden,  d.h.  durch genau ein Leerzeichen getrennt;  alle Zahlen müssen
  220. zweistellig  angegeben sein.  msh testet nicht auf Plausibilität;  "wait
  221. 999999 999999" wartet endlos. (Ist halt eben eine "Micro"-Shell.) 
  222.  
  223. Die   Microshell   macht   keinen   Gebrauch   von   evtl.   definierten
  224. Environment-Variablen,   gibt  diese  aber an alle gestarteten Programme
  225. unverändert weiter. 
  226.  
  227.  
  228. BEISPIELE
  229.  
  230. Beispiel 1: das MSH-Script zum Start der Okami-Shell 
  231.  
  232.         # Microshell Kontrolldatei für Okami-Shell
  233.         -
  234.         echo Aufruf